Communication devices such as cellular telephone handsets, cordless telephones, wireless local area network (WLAN) client stations, and other wired and wireless radio communication devices, require signal processing according to one of a variety of open or proprietary communication standards or protocols. Due to the numerous communication protocols being developed, efforts have been made to develop what is referred to as a software defined radio (SDR) device.
The concept behind the SDR device is the ability to reprogram and reconfigure a device with new capabilities, such as a new or modified communication protocol, while in an operational environment. These capabilities are also referred to as waveform processing and include digital signal processing functions, networking protocols, and other algorithms required for communication in accordance with a defined standard.
The modem processing portion of a modern radio device typically includes either one or more field programmable gate array (FPGA(s)) or one or more ASIC device(s) to host the digital signal processing (DSP) functions for the communication standard(s) supported by the device. These DSP functions tend to be very processing intensive and/or have time-critical execution constraints.
FPGA devices are generally used in SDR designs where waveform reprogrammability and reconfigurability, and waveform “download” objectives are important. In this case, when an operator selects a given waveform as a communications medium, the radio system loads the FPGA with the necessary DSP algorithms to operate the selected waveform. Likewise, when the operator selects another waveform as the communications medium (i.e., reprograms and re-configures the radio channel), the radio system reloads the FPGA with a different set of DSP algorithms required to operate the newly-selected waveform. The reprogrammability aspects of the FPGA also supports waveform “downloads”, which involve incorporating changes to existing waveforms and adding new waveforms as they become available.
ASIC devices are generally used in radio applications where reprogrammability is not required. In this case, ASIC devices are generally built for one specific waveform, or for hosting well-defined DSP algorithms that may not be practical to implement in an FPGA.
One example of a waveform processor is disclosed by Grabill in U.S. Pat. No. 7,193,435, issued on Mar. 20, 2007, which is incorporated herein by reference in its entirety. As disclosed therein, a programmable ASIC includes several fixed hardware functions and reprogrammable hardware functions which are linked to one another by a programmable switch. These functions are linked together in a specific sequence to perform a desired operation.
Referring to FIG. 1, as disclosed by Grabill, there is shown a functional block diagram for a programmable ASIC, generally designated as 110. The programmable ASIC 110 includes multiple fixed hardware function blocks 120(1) to 120(N), multiple programmable hardware function blocks 122(1) to 122(N) and programmable switch logic 108. In addition, programmable control block 102, input/output (I/O) block 118, configuration blocks 112 and 114, and data buses 106, 116 and 104 provide programming control of the various hardware function blocks.
Each of the fixed hardware function blocks 120(1) to 120(N) and programmable hardware function blocks 122(1) to 122(N) connects bi-directionally to programmable switch logic 108 and programmable control block 102. In addition, programmable control block 102 connects bi-directionally to programmable switch logic 108.
The fixed functions blocks 120(1) to 120(N) include a set of common signal processing functions that are parameterized and implemented as fixed digital logic gates programmable ASIC 110. Each of the fixed function blocks 120(1) to 120(N) is parameterized such that its operational characteristics may be programmed using different operating parameters. This is convenient because many signal processing functions are common across a variety of applications (such as a variety of communication protocols or waveforms), whereas certain operating parameters (characteristics) of those function may be different depending on the application. By parameterizing the functions, the operational characteristics of any given function may be programmed for a specific application (e.g., communication standard or waveform).
Examples of fixed functions (applicable to a communication application) that may be parameterized include: finite input response (FIR), filter bank frequency excision, fast Fourier transform/inverse fast Fourier transform (FFT/IFFT), convolutional encoding/decoding, Walsh encoding/decoding, interleaving/de-interleaving, digital matched filters, digital quad mixer, automatic gain control, RAKE receiver, transmission security (TRANSEC) generation and phase locked loop clock generation.
In addition, each parameterized fixed function 120(1) to 120(N) provides a common interface in which data may pass from one function to another, via the programmable switch logic. As a result, the programmable switch logic connects the fixed function blocks in any order.
The programmable functions 122(1) to 122(N) provide signal processing functions that are not “hard” functions. The programmable functions 122(1) to 122(N) may be implemented using one or more FPGA cores within an ASIC, for example. This provides the ability to add new or modified signal processing functions if needed, after ASIC development and product fielding.
The programmable switch logic 108 links together in any combination required, one or more of the fixed functions 120(1) to 120(N) and programmable hardware functions 122(1) to 122(N). Since signal processing interfaces are typically identical, the programmable switch logic may connect together one or more of the functions in any order. The programmable switch logic 108 includes multiplexer logic that may be implemented in fixed digital logic gates or in an FPGA that may be controlled to select a desired path through the various functions.
The present invention, as will be described, provides an improved waveform processor, characterized by software reprogrammable functions. Specifically, the present invention includes a scaleable array processor for waveform processing which allows scaling, reconfiguration and reprogramming, and does not require a cumbersome switching matrix.